package br.com.salao.mb;

import java.util.ArrayList;
import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.application.FacesMessage.Severity;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;

import br.com.salao.entity.Estado;
import br.com.salao.entity.Pais;
import br.com.salao.model.EstadoModel;
import br.com.salao.model.PaisModel;

@ManagedBean
@SessionScoped
public class EstadoMB {

	private Estado estado;	
	private List<SelectItem> selectItem;
	private List<Pais> listPaises;
	private Pais paisSelecionado;
	private List<Estado> listEstados;

	public EstadoMB() {
		init();
		listEstados = listar();
		getPaises();
	}
	
	public void init(){
		estado = new Estado();
		selectItem = new ArrayList<SelectItem>(0); 
		paisSelecionado = new Pais();
		listPaises = new ArrayList<Pais>();
	}

	public String incluir(){
		
		EstadoModel model = new EstadoModel();		
		if(getEstado() != null){			
			model.incluir(getEstado());	
			inserirMensagem("Inserido com sucesso!", FacesMessage.SEVERITY_INFO, "msgInclusaoEstado");
			init();
			return "novoEstado";
		}		
		inserirMensagem("Erro ao inserir dados!", FacesMessage.SEVERITY_ERROR, "msgInclusaoEstado");			
		return "novoEstado";
	}
	
	public void inserirMensagem(String mensagem, Severity severity, String idHtml){
		
		FacesMessage message = new FacesMessage(mensagem);    
		message.setSeverity(severity);     
		FacesContext.getCurrentInstance().addMessage(idHtml, message);		
	}

	public List<SelectItem> getPaises(){
		
		PaisModel model = new PaisModel();
		listPaises = model.listarPaises();
		
		for (int i = 0; i < listPaises.size(); i++) {
			SelectItem item = new SelectItem();
			item.setLabel(listPaises.get(i).getNome());
			item.setValue(listPaises.get(i).getId());
			selectItem.add(item);
		}
		
		return selectItem;
	}
		
	
	public List<Estado> getListEstados() {
		return listEstados;
	}

	public void setListEstados(List<Estado> listEstados) {
		this.listEstados = listEstados;
	}

	public Estado getEstado() {
		return estado;
	}

	public void setEstado(Estado estado) {
		this.estado = estado;
	}

	public List<SelectItem> getSelectItem() {
		return selectItem;
	}

	public void setSelectItem(List<SelectItem> selectItem) {
		this.selectItem = selectItem;
	}

	public List<Pais> getListPaises() {
		return listPaises;
	}

	public void setListPaises(List<Pais> listPaises) {
		this.listPaises = listPaises;
	}

	public Pais getPaisSelecionado() {
		return paisSelecionado;
	}

	public void setPaisSelecionado(Pais paisSelecionado) {
		this.paisSelecionado = paisSelecionado;
	}
	
	public List<Estado> listar(){
		EstadoModel model = new EstadoModel();
		return model.listar();
	}

}
